package org.arquimedes.servicios;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.arquiemedes.utilitarios.Constantes;

public class ServicioEnviarMail
{
     private static ServicioEnviarMail solitario = null;
    
    public static ServicioEnviarMail getServicio() {
        if(solitario == null)
            solitario = new ServicioEnviarMail();
        return solitario;
    }

    public static void main(String[] args){
        ServicioEnviarMail.getServicio().enviarMensajeAMail("arquimedesuniandes@gmail.com","Prueba");
    }
    
    public void enviarMensajeAMail(String To, String mensaje){
    try
        {
            // Propiedades de la conexi�n
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.SMTP));
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.PUERTOMAIL));
            props.setProperty("mail.smtp.user", ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.USUARIOMAIL));
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.FROM)));
            message.addRecipient(
                Message.RecipientType.TO,
                new InternetAddress(To));
            message.setSubject("Alerta generada !!!");
            message.setText(mensaje);

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect("arquimedesuniandes@gmail.com", ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.PASSWORDMAIL));
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
            System.out.println(ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.SMTP));
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    
    
    
}